package com.gitee.cirnochat.chatai.service;


import com.gitee.cirnochat.chatai.model.vo.req.aimsg.AiChatMessageDTO;
import com.gitee.cirnochat.chatai.model.vo.req.aisession.AISessionCreateDTO;
import com.gitee.cirnochat.chatai.model.vo.req.aisession.AISessionUpdateDTO;
import com.gitee.cirnochat.chatai.model.vo.req.aisummary.AISummaryTextDTO;
import com.gitee.cirnochat.chatai.model.vo.resp.AIChatSessionVo;
import com.gitee.cirnochat.chatai.model.vo.resp.AiChatSessionMessageVo;
import com.gitee.cirnochat.common.model.vo.resp.PageVo;
import jakarta.validation.Valid;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.util.List;

public interface AiChatService {
    AIChatSessionVo createSession(AISessionCreateDTO sessionCreateDTO, Long userId);

    PageVo<AIChatSessionVo> getSessionList(String searchName, int page, int size, Long userId);

    void deleteSession(Long id, Long userId);

    AIChatSessionVo updateSession(AISessionUpdateDTO sessionUpdateDTO, Long userId);

    List<AiChatSessionMessageVo> getMessagesBySessionId(Long sessionId, Long userId);

    void completeOutput(SseEmitter sseEmitter, @Valid AiChatMessageDTO dto, Long userId);

    String getSummaryFromText(AISummaryTextDTO dto);

    String getSummaryFromText(String content);

    List<String> getSupportModels();
}
